<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <link rel="stylesheet" href="calendar.css" type="text/css" />
 <title>Documentation</title>
 <style type="text/css">
 body {
 	counter-reset: chapitre;
 	text-align: justify;
 }
 
 h1:before {
 	content: counter(chapitre) ". ";
 	counter-increment: chapitre;
 }
 
 h1 {
 	counter-reset: section;
 }
 
 h2:before {
 	content: counter(chapitre) "." counter(section) ". ";
 	counter-increment: section;
 }
 
 h2 {
 	counter-reset: sous_section;
 	padding-left: 10px;
 }
 
 h3:before {
 	content: counter(chapitre) "." counter(section) "." counter(sous_section) ". ";
 	counter-increment: sous_section;
 }
 
 h3 {
 	padding-left: 20px;
 }
 
 var {
 	font-family: monospace;
 	font-style: italic;
 }
 
 .exemple_code {
 	background: #dcdcdc;
 }
 
 .liste_parametres, .historique_versions {
	border: none;
	border-collapse: collapse;
 }
 
 .liste_parametres th, .liste_parametres td, .historique_versions th, .historique_versions td {
 	border: 1px solid black;
 	padding: 4px;
 	vertical-align: top;
 }
 
 .liste_parametres th, .historique_versions th {
 	background: #b8b8b8;
 	white-space: nowrap;
 }
 
 .parametre {
 	font-family: monospace;
 	font-style: italic;
 }
 
 .valeur_defaut {
 	font-family: monospace;
 	font-size: 0.9em;
 }
 
 .liste_parametres ul, .historique_versions ul {
	margin-bottom: 0;
	margin-top: 0;
 }
 
 .note {
 	text-decoration: underline;
 }
 
 .fichier {
 	font-family: monospace;
 	font-size: 0.9em;
 	font-style: italic;
 }
 </style>
</head>

<body>
<h1><a id="Sommaire"></a>Sommaire</h1>
<div id="table_matiere">
<ul>
	<li><a href="#Sommaire">Sommaire</a></li>
	<li><a href="#Description">Description</a></li>
	<li><a href="#Installation">Installation et utilisation</a>
		<ul>
			<li><a href="#Installation_installation">Installation</a></li>
			<li><a href="#Installation_utilisation">Utilisation des scripts</a>
				<ul>
					<li>Int&eacute;gration PHP</li>
					<li>Int&eacute;gration JavaScript</li>
				</ul>
			</li>
			<li><a href="#Installation_parametrage">Param&eacute;trage et personnalisation</a>
				<ul>
					<li>Param&egrave;tres du calendrier</li>
					<li>Gestion des liens (jours du calendrier cliquables)</li>
					<li>Style du calendrier</li>
				</ul>
			</li>
			<li><a href="#Installation_internationalisation">Internationalisation</a></li>
		</ul>
	</li>
	<li><a href="#Historique">Historique des &eacute;volutions</a></li>
	<li><a href="#Credits">Cr&eacute;dits, licence et garantie</a></li>
</ul>
</div>

<h1><a id="Description"></a>Description</h1>
<p>Calendrier simple en PHP</p>

<table class="calendar_main" summary="">
	<tr class="calendar_title">
		<td class="calendar_title_left_arrow">&lt;&lt;</td>
		<td class="calendar_title_month">mai 2006</td>
		<td class="calendar_title_right_arrow">&gt;&gt;</td>
	</tr>
	<tr>
		<td colspan="3">
			<table class="calendar_table" summary="">
				<tr>
					<th>lun</th>
					<th>mar</th>
					<th>mer</th>
					<th>jeu</th>
					<th>ven</th>
					<th>sam</th>
					<th>dim</th>
				</tr>
				<tr>
					<td>1</td>
					<td>2</td>
					<td>3</td>
					<td>4</td>
					<td>5</td>
					<td class="calendar_weekend"><span class="calendar_today">6</span></td>
					<td class="calendar_weekend">7</td>
				</tr>
				<tr>
					<td>8</td>
					<td>9</td>
					<td>10</td>
					<td>11</td>
					<td>12</td>
					<td class="calendar_weekend">13</td>
					<td class="calendar_weekend">14</td>
				</tr>
				<tr>
					<td>15</td>
					<td>16</td>
					<td>17</td>
					<td>18</td>
					<td>19</td>
					<td class="calendar_weekend">20</td>
					<td class="calendar_weekend">21</td>
				</tr>
				<tr>
					<td>22</td>
					<td>23</td>
					<td>24</td>
					<td>25</td>
					<td>26</td>
					<td class="calendar_weekend">27</td>
					<td class="calendar_weekend">28</td>
				</tr>
				<tr>
					<td>29</td>
					<td>30</td>
					<td>31</td>
					<td><span class="calendar_other_month">1</span></td>
					<td><span class="calendar_other_month">2</span></td>
					<td class="calendar_weekend"><span class="calendar_other_month">3</span></td>
					<td class="calendar_weekend"><span class="calendar_other_month">4</span></td>
				</tr>
			</table>
		</td>
	</tr>
	<tr class="calendar_footer">
		<td class="calendar_footer_current_month">&nbsp;</td>
		<td class="calendar_footer_current_month"><a href="/demo_fr.php?cal1_date=082006" class="calendar_footer_current_month_clickable">aujourd'hui</a></td>
		<td class="calendar_footer_current_month">&nbsp;</td>
	</tr>
</table>

<p>Version&nbsp;: v2.2<br/>
Auteur&nbsp;: Sylvain Baudoin<br/>
Licence&nbsp;: GPL (GNU General Public License)<br/>
Veuillez remonter toute erreur &agrave; <a href="mailto:webmaster@themanualpage.org?subject=Calendrier%20en%20PHP%20v2.2">webmaster@themanualpage.org</a></p>

<h1><a id="Installation"></a>Installation et utilisation</h1>
<h2><a id="Installation_installation"></a>Installation</h2>
<ol>
	<li>Copiez les fichiers <span class="fichier">calendar.php</span>, <span class="fichier">calendar_js.php</span>
	et <span class="fichier">calendar_locales.php</span> dans un m&ecirc;me r&eacute;pertoire de votre site.</li>
	<li>Copiez &eacute;galement le fichier <span class="fichier">calendar.css</span> sur votre site, mais pas
	n&eacute;cessairement dans le m&ecirc;me r&eacute;pertoire que les pr&eacute;c&eacute;dents fichiers.
	Par exemple, copiez-le l&agrave; o&ugrave; vous mettez toutes les feuilles de style de votre site.</li>
</ol>

<p>Si n&eacute;cessaire, vous pouvez renommez les fichiers&nbsp;:</p>
<ul>
	<li><span class="fichier">calendar.css</span>&nbsp;: donnez le nom de votre choix</li>
	<li><span class="fichier">calendar.php</span>&nbsp;: donnez le nom de votre choix</li>
	<li><span class="fichier">calendar_js.php</span>&nbsp;: donnez le m&ecirc;me nom que le fichier
	<span class="fichier">calendar.php</span> en y ajoutant <code>_js</code>. Par exemple, si vous avez
	renommeacute; le fichier <span class="fichier">calendar.php</span> en <span class="fichier">foo.php</span>,
	renommez le fichier <span class="fichier">calendar_js.php</span> en <span class="fichier">foo_js.php</span>.</li>
	<li><span class="fichier">calendar_locales.php</span>&nbsp;: donnez le nom que vous voulez
	<strong>puis</strong> &eacute;ditez le fichier <span class="fichier">calendar.php</span> pour indiquer ce
	nouveau nom &agrave; la ligne 186.</li>
</ul>

<h2><a id="Installation_utilisation"></a>Utilisation des scripts</h2>
<p>Pour un exemple complet, vous pouvez consulter la page de d&eacute;monstration <span class="fichier">demo_fr.php</span>.
Le d&eacute;tail complet des param&egrave;tres de configuration du calendrier est donn&eacute;
dans un <a href="#Installation_parametrage">paragraphe d&eacute;di&eacute;</a>.</p>

<h3>Int&eacute;gration PHP</h3>
<p>Il suffit de proc&eacute;der de la fa&ccedil;on suivante dans la page PHP o&ugrave; vous
voulez afficher le calendrier&nbsp;:</p>

<pre class="exemple_code"><code>&lt;html&gt;
&lt;head&gt;
...
<strong>&lt;link rel="stylesheet" href="calendar.css" type="text/css" /&gt;</strong>
...
&lt;/head&gt;

&lt;body&gt;
...
&lt;?php
...
<strong>// Appel au script du calendrier
require_once("calendar.php");
// Parametrage
$params = array(...);
// Affichage
Calendar($params);</strong>
...
?&gt;
&lt;body&gt;
&lt;html&gt;</code></pre>

<p>Les chemins vers la feuille de style et le script <span class="fichier">calendar.php</span>
doivent bien entendu &ecirc;tre corrig&eacute;s par rapport &agrave; l'endroit o&ugrave; vous
avez mis ces fichiers.</p>

<p>Le param&eacute;trage du calendrier se fait gr&acirc;ce &agrave; un tableau associatif. Par exemple&nbsp;:</p>

<pre class="exemple_code"><code>$params = array(
              "LANGUAGE_CODE" => "en",
              "FIRST_WEEK_DAY" => 1,
              "USE_SESSION" => true
          );
Calendar($params);</code></pre>

<p><strong>ATTENTION&nbsp;!!!</strong> si vous activez l'utilisation des sessions (<var>USE_SESSION</var>
= <code>true</code>), vous devez cr&eacute;er vous-m&ecirc;me la session au tout d&eacute;but de
votre page car le script du calendrier ne le fera pas.</p>

<p>Pour mettre plusieurs calendrier sur une m&ecirc;me page, inutile de r&eacute;incorporer le script
<span class="fichier">calendar.php</span>&nbsp;: il suffit de d&eacute;finir les nouveaux param&egrave;tres
de chaque calendrier et d'appeler la fonction <code>Calendar()</code> avec ces param&egrave;tres&nbsp;:</p>

<pre class="exemple_code"><code>...
&lt;?php
require_once("calendar.php");

// Premier calendrier
$params1 = array(...);
Calendar($params1);
...
?&gt;
...
&lt;?php
// Second calendrier
$params2 = array(...);
Calendar($params2);
?&gt;
...</code></pre>

<p>Depuis la version 2.1, il est possible de r&eacute;cup&eacute;rer le code HTML du calendrier
dans votre code PHP en pr&eacute;cisant la valeur <code>"return"</code> au param&egrave;tre
<var>OUTPUT_MODE</var>. Exemple&nbsp;:</p>

<pre class="exemple_code"><code>...
&lt;?php
require_once("calendar.php");

$params1 = array(..., <strong>"OUTPUT_MODE" => "return"</strong>, ...);
$html_calendar = Calendar($params1);
...
// Affichage du calendrier
echo $html_calendar;
...
?&gt;
...</code></pre>


<h3>Int&eacute;gration JavaScript</h3>
<p><strong>ATTENTION&nbsp;!!!</strong> pour l'int&eacute;gration JavaScript, il reste
n&eacute;cessaire d'avoir un serveur Web PHP pour ex&eacute;cuter les scripts
<span class="fichier">calendar.php</span> et <span class="fichier">calendar_js.php</span>.
Le but de cet int&eacute;gration JavaScript est de permettre d'afficher le calendrier
dans les pages Web dans lesquelles il n'est pas possible d'&eacute;crire du PHP.</p>

<p>Pour cette int&eacute;gration, il suffit de proc&eacute;der de la fa&ccedil;on suivante&nbsp;:</p>

<pre class="exemple_code"><code>&lt;html&gt;
&lt;head&gt;
...
<strong>&lt;link rel="stylesheet" href="calendar.css" type="text/css" /&gt;</strong>
...
&lt;/head&gt;

&lt;body&gt;
...
&lt;!-- Affichage du calendrier --&gt;
<strong>&lt;script type="text/javascript" src="calendar_js.php?..."&gt;&lt;/script&gt;</strong>
...
&lt;body&gt;
&lt;html&gt;</code></pre>

<p>Le param&eacute;trage du calendrier se fait en passant les param&egrave;tres du calendrier
et leur valeur en tant que variables d'URL. Ainsi, pour d&eacute;finir les param&egrave;tres
<var>CSS_PREFIX</var> &agrave; <code>"foo_"</code> et <var>USE_SESSION</var> &agrave; <code>true</code>,
il faut faire&nbsp;:</p>

<pre class="exemple_code"><code>&lt;script type="text/javascript"
  src="calendar_js.php<strong>?CSS_PREFIX=foo_&amp;USE_SESSION=true</strong>"&gt;
&lt;/script&gt;</code></pre>

<p>Pensez bien &agrave; ajouter la feuille de style du calendrier dans votre page (voir plus bas, paragraphe "Style du calendrier").</p>

<h2><a id="Installation_parametrage"></a>Param&eacute;trage et personnalisation</h2>
<h3>Param&egrave;tres du calendrier</h3>
<p>Le param&eacute;trage du calendrier se fait en d&eacute;finissant des param&egrave;tres.
Pour chaque param&egrave;tre non d&eacute;fini, des valeurs par d&eacute;faut sont
utilis&eacute;es&nbsp;:</p>

<table class="liste_parametres" summary="Param&egrave;tres du calendrier">
	<tr>
		<th>Param&egrave;tre</th>
		<th>Description</th>
		<th>Valeur par d&eacute;faut</th>
	</tr>
	<tr>
		<td class="parametre">PREFIX</td>
		<td>
			pr&eacute;fixe des param&egrave;tres d'URL et de session du calendrier. D&eacute;finissez
			une valeur diff&eacute;rente pour chaque calendrier &agrave; afficher sur la m&ecirc;me
			page. Ne pas commencer le pr&eacute;fixe par un chiffre.
		</td>
		<td class="valeur_defaut">"calendar_"</td>
	</tr>
	<tr>
		<td class="parametre">CSS_PREFIX</td>
		<td>
			pr&eacute;fixe des classes CSS utilis&eacute;es pour le style du calendrier. A
			utiliser pour afficher des calendriers dans diff&eacute;rents styles.
		</td>
		<td class="valeur_defaut">"calendar_"</td>
	</tr>
	<tr>
		<td class="parametre">DATE_URL</td>
		<td>
			si d&eacute;fini, indique une URL &agrave; utiliser pour rendre les jours du
			calendrier cliquables. Cette URL est compl&eacute;t&eacute;e par le param&egrave;tre d'URL
			indique par le param&egrave;tre <var>URL_PARAMETER</var> du calendrier.
		</td>
		<td class="valeur_defaut">""</td>
	</tr>
	<tr>
		<td class="parametre">URL_PARAMETER</td>
		<td>
			si le param&egrave;tre pr&eacute;c&eacute;dent (<var>DATE_URL</var>) est d&eacute;fini,
			indique le nom du param&egrave;tre d'URL &agrave; utiliser pour compl&eacute;ter l'URL
			<var>DATE_URL</var> avec la date cliqu&eacute;e. La date est pass&eacute;e au format
			indiqu&eacute; par le param&egrave;tre <var>URL_DAY_DATE_FORMAT</var> pour les jours
			et <var>URL_MONTH_DATE_FORMAT</var> pour le mois et l'ann&eacute;e (lien du titre
			du calendrier).
		</td>
		<td class="valeur_defaut">"date"</td>
	</tr>
	<tr>
		<td class="parametre">USE_SESSION</td>
		<td>
			mettre &agrave; <code>true</code> pour stocker les donn&eacute;es d'affichage du
			calendrier en session. Cela permet de m&eacute;moriser l'affichage lorsqu'on navigue
			entre plusieurs pages.<br/>
			<strong>ATTENTION&nbsp;!!!</strong> si vous utilisez les sessions, n'oubliez pas de
			cr&eacute;er la session au tout d&eacute;but de votre script, ce script ne le fera pas.
		</td>
		<td class="valeur_defaut">false</td>
	</tr>
	<tr>
		<td class="parametre">PRESERVE_URL</td>
		<td>
			indique, au moment de constuire les URL des liens "mois pr&eacute;c&eacute;dent"
			et "mois suivant", s'il faut conserver (<code>true</code>) l'URL actuelle de la
			page et ajouter la date (<code>?xx=yyy&amp;...&amp;date=...</code>) ou s'il faut supprimer
			la query string et ne mettre que le param&egrave;tre de date (<code>?date=...</code>).
		</td>
		<td class="valeur_defaut">true</td>
	</tr>
	<tr>
		<td class="parametre">JS</td>
		<td>indique si le calendrier est int&eacute;gr&eacute; en JavaScript (<code>true</code>) ou non.</td>
		<td class="valeur_defaut">false</td>
	</tr>
	<tr>
		<td class="parametre">JS_URL</td>
		<td>
			si l'int&eacute;gration JavaScript est utilis&eacute;e, doit indiquer l'URL de la
			page int&eacute;grant le calendrier.
		</td>
		<td class="valeur_defaut">""</td>
	</tr>
	<tr>
		<td class="parametre">FIRST_WEEK_DAY</td>
		<td>
			premier jour de la semaine&nbsp;: 1 pour lundi, 2 pour mardi, etc..., 7 ou
			0 pour dimanche.
		</td>
		<td class="valeur_defaut">1 (lundi)</td>
	</tr>
	<tr>
		<td class="parametre">LANGUAGE_CODE</td>
		<td>code ISO &agrave; 2 lettres de la langue d'affichage du calendrier.</td>
		<td class="valeur_defaut">"fr" (francais)</td>
	</tr>
	<tr>
		<td class="parametre">CLICKABLE_TITLE</td>
		<td>
			lorsque <var>DATE_URL</var> est d&eacute;fini, dit si le titre du calendrier (i.e. le
			mois + ann&eacute;e en haut du calendrier) est cliquable. Dans ce cas, la
			date pass&eacute;e dans le param&egrave;tre d'URL est au format indiqu&eacute;
			par le param&egrave;tre <var>URL_MONTH_DATE_FORMAT</var>.
		</td>
		<td class="valeur_defaut">true</td>
	</tr>
	<tr>
		<td class="parametre">OUTPUT_MODE</td>
		<td>
			si d&eacute;fini &agrave; <code>"return"</code>, le code HTML du calendrier
			sera renvoy&eacute; en tant que valeur de retour de la fonction <code>Calendar</code>.
			Si d&eacute;fini &agrave; <code>"echo"</code>, le code HTML du calendrier
			sera directement renvoy&eacute; dans la r&eacute;ponse au navigateur. Utilisez
			<code>"return"</code> si vous voulez r&eacute;cup&eacute;rer le code HTML
			du calendrier dans une variable PHP et &eacute;ventuellement faire des
			traitements dessus.
		</td>
		<td class="valeur_defaut">"echo"</td>
	</tr>
	<tr>
		<td class="parametre">URL_DAY_DATE_FORMAT</td>
		<td>
			lorsque <var>DATE_URL</var> est d&eacute;fini, indique le format de la
			date des jours du calendrier pass&eacute;e dans l'URL. Ce format doit &ecirc;tre
			donn&eacute; selon le format support&eacute; par la fonction PHP <code>date</code>.
			Sans effet si <var>DATE_URL</var> n'est pas d&eacute;fini.
		</td>
		<td class="valeur_defaut">"dmY" (jjmmaaaa)</td>
	</tr>
	<tr>
		<td class="parametre">URL_MONTH_DATE_FORMAT</td>
		<td>
			lorsque <var>DATE_URL</var> est d&eacute;fini, indique le format de la
			date du mois pass&eacute;e dans l'URL (lien du titre du calendrier). Ce format doit &ecirc;tre
			donn&eacute; selon le format support&eacute; par la fonction PHP <code>date</code>.
			Sans effet si <var>DATE_URL</var> n'est pas d&eacute;fini.
		</td>
		<td class="valeur_defaut">"mY" (mmaaaa)</td>
	</tr>
</table>

<h3>Gestion des liens (jours du calendrier cliquables)</h3>
<p>Vous pouvez rendre les jours du calendrier cliquables. Pour cela, d&eacute;finissez le
param&egrave;tre <var>DATE_URL</var>. Dans ce cas, <strong>toutes</strong> les dates
du calendrier seront cliquables. Les URL des dates sont alors construites de la fa&ccedil;on
suivante&nbsp;:</p>

<p class="exemple_code"><code>&lt;valeur du param&egrave;tre DATE_URL&gt;&lt;?|&amp;&gt;&lt;valeur
du param&egrave;tre URL_PARAMETER&gt;=&lt;date du jour au format URL_DAY_DATE_FORMAT&gt;</code></p>

<p>Par exemple, si vous d&eacute;finissez <var>DATE_URL</var> &agrave; <code>"/rep1/rep2/script.php?foo=bar"</code>,
<var>URL_PARAMETER</var> &agrave; <code>"event_date"</code> et <var>URL_DAY_DATE_FORMAT</var>
&agrave; <code>"Ymd"</code>, alors les URL des jours du calendrier seront les suivantes&nbsp;:</p>

<pre class="exemple_code"><code>/rep1/rep2/script.php?foo=bar&amp;event_date=20060813
/rep1/rep2/script.php?foo=bar&amp;event_date=20060814
...</code></pre>

<p>L'URL du titre du calendrier (i.e. l'URL du mois) est construite de la m&ecirc;me fa&ccedil;on
mais en utilisant <var>URL_MONTH_DATE_FORMAT</var> &agrave; la place de <var>URL_DAY_DATE_FORMAT</var>.</p>

<p>Dans cette version du calendrier (de m&ecirc;me que les versions pr&eacute;c&eacute;dentes),
il n'est pas possible de rendre seulement quelques cliquables par simple param&eacute;trage. Si
vous souhaitez ne rendre que quelques dates cliquables, vous devez modifier le code du fichier
<code>calendar.php</code> par exemple pour aller chercher ces dates dans une base de donn&eacute;es.</p>

<h3>Style du calendrier</h3>
<p>Le style du calendrier est enti&egrave;rement d&eacute;fini par CSS. Vous devez d&eacute;clarer
vous-m&ecirc;me la feuille de style du calendrier dans le code HTML de vos pages. Par exemple, ajoutez
la ligne suivante dans les en-t&ecirc;tes de vos pages Web si vous avez plac&eacute; la feuille
de style par d&eacute;faut du calendrier &agrave; la racine de votre site&nbsp;:</p>

<pre class="exemple_code"><code>&lt;link rel="stylesheet" href="/calendar.css" type="text/css" /&gt;</code></pre>

<p>Reportez-vous &eacute;galement aux d&eacute;mos fournis avec ce script.</p>

<p>Vous pouvez utiliser la feuille par d&eacute;faut (le fichier <code>calendar.css</code>) ou vos
propres styles. Pour le d&eacute;tail des classes utilis&eacute;es, veuillez consulter
le fichier <span class="fichier">calendar.css</span>. Le nom des classes est calcul&eacute;
en utilisant le pr&eacute;fixe d&eacute;fini par le param&egrave;tre <var>CSS_PREFIX</var>.
Ceci permet de d&eacute;finir deux styles diff&eacute;rents pour deux calendriers affich&eacute;s
dans la m&ecirc;me page. Par exemple, si vous d&eacute;finissez le param&egrave;tre <var>CSS_PREFIX</var>
&agrave; <code>foo_</code> pour un calendrier, les classes CSS qui seront appliqu&eacute;s
seront <var>foo_title</var> pour le titre du calendrier (ann&eacute;e + mois), <var>foo_weekend</var>
pour les jours du week-end, etc.</p>

<p>Pour masquer le lien situ&eacute; sous le calendrier et ramenant au mois en cours, d&eacute;finissez
la propri&eacute;t&eacute; CSS <var>display</var> &agrave; <code>none</code>.</p>

<h2><a id="Installation_internationalisation"></a>Internationalisation</h2>
<p>Depuis la version 2.0, ce logiciel supporte plusieurs langues d'affichage.
<strong>La langue d'affichage par d&eacute;faut est le fran&ccedil;ais</strong>.
La version 2.0 poss&egrave;de les traductions pour le fran&ccedil;ais, l'anglais,
l'allemand, l'espagnol et l'italien. La version 2.1 a apport&eacute; une traduction chinoise.</p>

<p><span class="note">Rappel&nbsp;:</span> pour modifier la langue d'affichage, utilisez le param&egrave;tre
<var>LANGUAGE_CODE</var> du calendrier (voir <a href="#Installation_parametrage">le param&eacute;trage</a>)
pour indiquer le code ISO 639 de la langue. Vous trouverez la liste de ces codes ISO 639 des langues sur le site
<a href="http://www.loc.gov/standards/iso639-2/langcodes.html">http://www.loc.gov/standards/iso639-2/langcodes.html</a>.
Exemple&nbsp;:</p>

<pre class="exemple_code"><code>&lt;?php
...
// On affiche en allemand (code ISO 639 = de)
$params = array(..., <strong>"LANGUAGE_CODE" => "de"</strong>, ...);
Calendar($params);
...
?&gt;</code></pre>

<p>Pour ajouter une langue au calendrier, proc&eacute;dez de la fa&ccedil;on suivante&nbsp;:</p>

<ol>
	<li>Trouvez le code ISO 639 de la nouvelle langue.</li>
	<li>Editez le fichier <span class="fichier">calendar_locales.php</span> et compl&eacute;tez
	les trois variables suivantes&nbsp;:
		<ul>
			<li><var>$MONTHS</var>&nbsp;: contient le nom des mois, en commen&ccedil;ant
			par janvier et en finissant par d&eacute;cembre.</li>
			<li><var>$WEEK_DAYS</var>&nbsp;: contient le nom abr&eacute;g&eacute; des jours de la semaine,
			en commen&ccedil;ant par dimanche et en finissant par samedi. Indiquez des noms abr&eacute;g&eacute;s
			car ces noms sont utilis&eacute;s en en-t&ecirc;te des colonnes du calendrier.</li>
			<li><var>$MONTH_HEADER</var>&nbsp;: contient le format &agrave; utiliser pour afficher le mois
			et l'ann&eacute;e dans l'en-t&ecirc;te du calendrier. <code>%m</code> sera remplac&eacute; par
			le mois et <code>%y</code> sera remplac&eacute; par l'ann&eacute;e sur 4 chiffres. Exemple&nbsp;:
			<code>"%y - %m"</code> fera afficher "2006 - janvier", "2006 - f&eacute;vrier", etc.</li>
			<li><var>$CALLBACK</var>&nbsp;: contient le nom du lien situ&eacute; en dessous du calendrier
			et ramenant au mois courant.</li>
		</ul>
	</li>
	<li>Indiquez le code de la langue avec le param&egrave;tre <var>LANGUAGE_CODE</var> du calendrier.</li>
</ol>

<h1><a id="Historique"></a>Historique des &eacute;volutions</h1>
<table class="historique_versions" summary="Historique des versions du calendrier">
	<tr>
		<th>Version</th>
		<th>Description</th>
	</tr>
	<tr>
		<td>2.2</td>
		<td>
			<ul>
				<li>
					Le param&egrave;tre <code>DATE_URL</code> peut d&eacute;sormais
					contenir une URL absolue ("http://..."), ce qui n'&eacute;tait pas
					support&eacute; dans les versions pr&eacute;c&eacute;dentes.
				</li>
				<li>
					Ajout de l'utilisation du param&egrave;tre <code>DATE_URL</code> dans
					les d&eacute;mos.
				</li>
			</ul>
		</td>
	</tr>
	<tr>
		<td>2.1</td>
		<td>
			<ul>
				<li>
					Ajout des param&egrave;tres <code>CLICKABLE_TITLE</code>,
					<code>OUTPUT_MODE</code>, <code>URL_DAY_DATE_FORMAT</code> et
					<code>URL_MONTH_DATE_FORMAT</code>
				</li>
				<li>Ajout du lien de retour &agrave; au mois courant</li>
				<li>Correction de bugs et non conformit&eacute;s XHTML</li>
				<li>Documentation&nbsp;:
					<ul>
						<li>Paragraphe "Style du calendrier" compl&eacute;t&eacute;</li>
						<li>Ajout du paragraphe "Gestion des liens"</li>
						<li>Documentation des nouveaux param&egrave;tres</li>
					</ul>
				</li>
				<li>Ajout des traductions et d&eacute;mo en chinois</li>
			</ul>
		</td>
	</tr>
	<tr>
		<td>2.0</td>
		<td>
			<ul>
				<li>Refonte de la gestion des param&egrave;tres du calendrier</li>
				<li>Internationalisation du calendrier</li>
				<li>Documentation en fran&ccedil;ais et anglais</li>
			</ul>
		</td>
	</tr>
	<tr>
		<td>1.1</td>
		<td>
			<ul>
				<li>Correction d'un bug causant un double affichage de certains jours</li>
			</ul>
		</td>
	</tr>
	<tr>
		<td>1.0</td>
		<td>
			<ul>
				<li>Version initiale</li>
			</ul>
		</td>
	</tr>
</table>

<h1><a id="Credits"></a>Cr&eacute;dits, licence et garantie</h1>
<p>Copyright (c) 2005-2007 - Sylvain BAUDOIN (webmaster@themanualpage.org)</p>

<p>Ce programme PHP est un logiciel libre&nbsp;; vous pouvez le redistribuer et/ou
le modifier au titre des clauses de la Licence Publique G&eacute;n&eacute;rale GNU,
telle que publi&eacute;e par la Free Software Foundation ; soit la version 2 de la
Licence, ou (&agrave; votre discr&eacute;tion) une version ult&eacute;rieure quelconque.</p>

<p>Ce programme est distribu&eacute; dans l'espoir qu'il sera utile, mais SANS AUCUNE
GARANTIE&nbsp;; sans m&ecirc;me une garantie implicite de COMMERCIABILITE ou DE
CONFORMITE A UNE UTILISATION PARTICULIERE. Voir la Licence Publique Generale
GNU pour plus de d&eacute;tails.</p>

<p>Vous devriez avoir re&ccedil;u un exemplaire de la Licence Publique Generale GNU
avec ce programme (fichier <span class="fichier">gpl.txt</span>)&nbsp;; si ce n'est
pas le cas, &eacute;crivez &agrave; la <i>Free Software Foundation Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA</i>.</p>

</body>
</html>